package com.xzssmk.leisure.x.mapper;

import com.xzssmk.leisure.x.po.IssuePeriod;
import com.xzssmk.leisure.x.po.IssuePeriodExample;
import com.xzssmk.leisure.x.po.IssuePeriodWithBLOBs;
import com.xzssmk.leisure.x.po.SelectModel;
import com.xzssmk.leisure.x.vo.BBProportion;
import com.xzssmk.leisure.x.vo.IssuePeriodInCome;
import com.xzssmk.leisure.x.vo.SaleCardCountList;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface IssuePeriodMapper {
    long countByExample(IssuePeriodExample example);

    int deleteByExample(IssuePeriodExample example);

    int deleteByPrimaryKey(Integer issuePeriodId);

    int insert(IssuePeriodWithBLOBs record);

    int insertSelective(IssuePeriodWithBLOBs record);

    List<IssuePeriodWithBLOBs> selectByExampleWithBLOBs(IssuePeriodExample example);

    List<IssuePeriod> selectByExample(IssuePeriodExample example);

    IssuePeriodWithBLOBs selectByPrimaryKey(Integer issuePeriodId);

    int updateByExampleSelective(@Param("record") IssuePeriodWithBLOBs record,
        @Param("example") IssuePeriodExample example);

    int updateByExampleWithBLOBs(@Param("record") IssuePeriodWithBLOBs record,
        @Param("example") IssuePeriodExample example);

    int updateByExample(@Param("record") IssuePeriod record, @Param("example") IssuePeriodExample example);

    int updateByPrimaryKeySelective(IssuePeriodWithBLOBs record);

    int updateByPrimaryKeyWithBLOBs(IssuePeriodWithBLOBs record);

    int updateByPrimaryKey(IssuePeriod record);

    int deleteByPrimaryKeys(@Param("idlist") List<Integer> idlist);

    List<IssuePeriod> getPageList(@Param("subSQL") String subSQL);

    List<SelectModel> getSelectList();

    int updatePublicState(@Param("issuePeriodId") Integer issuePeriodId, @Param("publicState") Integer publicState);

    List<BBProportion> bbProportionCleanUpPageList(@Param("issuePeriodId") String issuePeriodId,@Param("scenicSpotId") String scenicSpotId);

    List<SaleCardCountList> bbSaleCardCountList(@Param("issuePeriodId") String issuePeriodId);

    List<IssuePeriodInCome> bbIssuePeriodInComeList(@Param("issuePeriodId") String issuePeriodId);
}